StdCmds.OpenBrowser('Form/Docu/Guide', 'User Guide for Form Subsystem')
Oberon/F: Frequently Asked Questions
Oberon microsystems, Inc. 4-Feb-96
General Questions
In which way does the education version differ from the developer version of Oberon/F?
The education version of Oberon/F differs from the developer version in mainly four aspects:
- It is not permitted to use it for commercial purposes beyond evaluation.
- An "education version" message appears in every window and on every printed page.
- There is no linker. Due to the dynamic linking facilities of Oberon/F, a separate linker is not necessary for the development nor even for the distribution of software.
- There is no OLE support (Windows platform)
- There will be no free upgrades to new releases, if the software has been bought from Oberon microsystems. Either the new release is bought again for the full education price, or it is downloaded for free via Internet.
It's the purpose of the education version to give access to the most innovative Oberon/F technologies (the cross-platform component framework) to anyone interested in Oberon; as long as there is no commercial background to its use.
The education version may only be used for private self-education, or for education or research in state schools and universities. A license is needed for any other types of education institutions.
Non-education institutions (businesses, government, etc.) may not use the education version for more than demonstration purposes.
In which way does the Internet education version differ from the education version sold by Oberon microsystems?
The software is identical. However, not everyone has access to Internet. Thus the education version can be bought from Oberon microsystems, as well as downloaded for free from the Internet.
What additional information is provided in the printed manuals?
Everything in the printed manuals is available on-line as well, both in the developer and in the education version.
Are there royalties for the distribution of applications based on Oberon/F?
There are none. Every part of Oberon/F may be redistributed without fees, except for the development subsystem and documentation. The development subsystem may only be redistributed by someone who has an OEM contract with Oberon microsystems.
Does Oberon/F provide an application framework like Borland's OWL, Microsoft's MFC, or Apple's MacApp?
The "F" in Oberon/F comes from "framework". Oberon/F is an object-oriented framework. However, rather than being a framework for applications in the traditional sense (monolithic software), Oberon/F constitutes a true component framework (component software). See the on-line documentation for a fuller explanation of what the difference is.
Oberon/F can also be used as a traditional application framework, by linking a completed application together. However, the true benefits of a framework (dynamic extensibility) is largely lost this way.
Does Oberon/F support the standard Oberon-2 extensions?
Yes. Oberon/F implements and uses the full
Oberon-2
language
as defined in the Oberon-2 language report of H. M
ssenb
ck and N. Wirth. This report is the defining standard for the Oberon language.
Is there literature about the language Oberon?
There are the books "Programming in Oberon" from Addison-Wesley, and "Object-Oriented Programming in Oberon-2" from Springer. Further commented references are given in the
bibliography
document
which is part of the Oberon/F on-line documentation.
I like the Oberon system, but I cannot sell a product with a non-standard user interface to my clients!?
You're referring to one of the ETH Oberon systems, not to Oberon/F. They've got non-standard user interfaces.
To provide the native look-and-feel of the underlying platform is one of the fundamental differences between Oberon/F and those systems.
Has Oberon/F been developed at ETH?
No. Oberon microsystems is a spin-off of ETH Z
rich, and Oberon/F uses many concepts developed for the ETH projects Oberon V4, Oberon System 3, Ethos, and Opus. Nevertheless it is a completely new design, intended for full support of industry-standard graphical user interfaces and component software standards.
Is there a special bulletin board for Oberon/F developers?
Not yet. For now, the Internet newsgroup comp.lang.oberon is a suitable platform for discussions about Oberon/F-related topics, as well as about other Oberon-related topics.
How can I stay informed about new developments?
Send an e-mail consisting of the string subscribe to Oberon/F announcements to oberon@oberon.ch. Look at our Web site http://www.oberon.ch/customers/omi.
Furthermore, there is the "Oberon Developer Forum" which constitutes a network of Oberon/F developers. Members of the Oberon Developer Forum receive The
Oberon
Tribune, a technical newsletter and marketplace for developers. For information on how to become member of the Oberon Developer Forum, see the
order
What's in the Pipeline?
Will there be a native PowerPC Macintosh implementation of Oberon/F?
Yes, it is planned to be released later this year, after the OpenDoc-enabler of Oberon/F for Mac OS is released.
Will there be an OS/2 implementation of Oberon/F?
The OS/2 implementation is currently on hold. Given the uncertain future of OS/2, we cannot risk the considerable investment that would be necessary. We will reconsider the issue if we find external financing for such a project, or if IBM shows an active interest.
Will there be a Unix implementation of Oberon/F?
Such an implementation is planned. As a first step, the non-interactive parts of Oberon/F (the library) are being ported to Unix.
Will there be an Amiga, Atari, Linux, VMS, or DOS implementation of Oberon/F?
Currently there are no plans to support these platforms.
Interfacing Questions
Can we use existing DLLs in Oberon/F for Windows?
Every 32-bit DLL can be imported into Oberon/F. This doesn't require any special tools. For DLLs with COM interfaces, the special Direct-To-COM compilers make the use of COM objects much simpler and safer.
Can we create DLLs with Oberon/F for Windows?
An Oberon application can be turned into a standard DLL. This is not possible with the education version, since a linker is required for this purpose. In order to create DLLs with COM interfaces, the special Direct-To-COM compilers makes the creation of COM objects much simpler and safer.
Can I do true Windows programming with Oberon/F for Windows?
Yes. Oberon/F provides the native Windows look-and-feel, thus you can create applications with the genuine Windows user interface with Oberon/F. Also, you may decide to use only some subset of Oberon/F in your applications (e.g. kernel and loader). You may even rely completely on direct access to the Windows APIs and not even use the kernel's memory management facilities (NEW and garbage collection).
Can I access the Windows APIs from within Oberon/F for Windows?
Yes, you can directly use Windows-specific features from within Oberon/F applications. Of course, some degree of platform-independence is lost that way.
Can I do true Macintosh toolbox programming with Oberon/F for Macintosh?
Yes. Oberon/F provides the native Macintosh look-and-feel, thus you can create applications with the genuine Macintosh user interface with Oberon/F. Also, you may decide to use only some subset of Oberon/F in
your applications (e.g. kernel and loader). You may even rely completely on direct access to the Mac OS and toolbox and not even use the kernel's memory management facilities (garbage collection).
Can I access the Macintosh APIs from within Oberon/F for Macintosh?
Yes, you can directly use Macintosh-specific features from within Oberon/F applications. Of course, some degree of platform-independence is lost that way.
Can we use existing shared libraries or code fragments in Oberon/F for Macintosh?
The Apple Shared Library Manager (ASLM) is to be replaced by the Code Fragment Manager (CFM), because OpenDoc uses code fragments. Oberon/F allows to import code fragments, but not shared libraries.
Technical Questions
I can open a form via the File->Open menu command. How can I open a form as a mask, from another menu command?
Menu commands are specified in the "Menus" text, which is opened when you execute Info->Menus. The command for the "New Form..." dialog is an example of a command which opens a dialog for data entry. File->Open opens dialogs as editable forms, not as entry masks.
See "The Form Subsystem" in the
User's
Guide
for details.
How can I open a form as a mask, from within a program?
In order to separate a program and its user interface as far as possible, an Oberon/F program usually doesn't open a dialog itself. Instead, one puts appropriate commands in menus or in command buttons of other dialogs. See the section on forms and menus in the User's Guide. If you still need to open a dialog from within a program, execute the same command string you would use in a menu, by calling the "Dialog.Call" procedure, e.g.
Yes, with a method and tools developed by Microsoft. The method is called "thunking". As a result of thunking, you get auxiliary 32-bit DLLs which can be imported into Oberon/F like any other such DLL.
How can I migrate my ETH Oberon applications to Oberon/F?
There is a loose relation between ETH Oberon and Oberon/F. To move from ETH Oberon V4 to Oberon/F, the following mappings may be helpful to keep in mind:
ETH Oberon V4 Oberon/F
Math, MathL Math
Files Files
Fonts Fonts
Input Ports
Display Ports
Texts TextModels
TextFrames TextViews, TextControllers
Edit TextCmds
Viewers no equivalent
MenuViewers no equivalent
It is notable that Oberon/F introduces persistent object support (module Stores) and a compound document architecture (modules Models, Views, Controllers). Oberon/F is completely document-centric, thus the notion of Viewers (Windows) does not exist as a public abstraction. Device independence and support for native controls led to a strict separation of the document space (models and views) and the device space (ports, frames). Thus the multiple role of an ETH Oberon frame is split into Oberon/F frames and views. Frames are usually not extended by an application. Instead, the views form the central component interface of Oberon/F. Module Dialog provides some user interface support, and the form subsystem (FormModels, FormViews, FormControllers, FormCmds) adds support for graphical user interface elements like buttons and dialog boxes.
Is there support for bitmaps?
Currently there's no portable support for bitmaps. Existing Windows or Macintosh pictures can be pasted and displayed on the respective platform, but not on another platform, i.e. these views are not portable. Support for portable and editable bitmaps is planned for later. Of course, the respective platform's bitmap routines (Windows GDI, Macintosh QuickDraw) could be accessed directly if necessary.
Can we develop software which imports the development subsystem (e.g. the compiler) of Oberon/F?
Yes. However, distributing an application which includes the development subsystem is only permitted if you have an OEM contract with Oberon microsystems.
Can I get access to the text behind a commander, i.e. where's the equivalent of ETH Oberon's Oberon.Par.text?
This is DevCommanders.par. However, distributing an application which includes the development subsystem is only permitted if you have an OEM contract with Oberon microsystems. Furthermore, providing textual commands is not recommended for end-user applications, since this concept is not part of the standard graphical user interfaces. However, see the ObxParCmd example of how to achieve the same thing with a standard command button.
How can I store an interactor?
The purpose of an interactor is to combine several parameters of a command into one variable, such that the form subsystem can display these parameters with the least necessary effort by the programmer. Interactors are intended as auxiliary, light- weight objects. In database applications, they typically form a subset of a tuple in a relation. It is not recommended to use an interactor as basis of a database implementation. They should merely be the common ground for the application program, the user interface (form subsystem), and the database.
Can I create and manipulate texts not only interactively, but by a program as well?
Yes, because the text editor, like any Oberon/F editor, not only has a user interface but also an application programming interface (API). See e.g. the examples ObxHello1, ObxAddress1, ObxAddress2, ObxLinks, ObxTabs, and ObxDb in the Obx directory.
When I start Oberon/F for Windows, the application freezes upon start-up. What's wrong?
This behavior appears if an outdated version of Win32s is used. Oberon/F comes with version 1.2 of Win32s, which is sufficiently recent.
How can I create an ASCII text file out of an Oberon/F document in Oberon/F for Windows?
When saving the document, switch to file type "txt" in the "Save As" dialog. The root text view will be converted into an ASCII file.